//
// Created by mazaiting on 2024/4/29.
//

#include <bits/stdc++.h>
#include <stack>

using namespace std;

void Sortst(stack<int>& st)
{  stack<int> st1;			//定义临时栈st1
    int e;
    while (!st.empty())		//将st1变为递增栈
    {  e=st.top();			//st出栈元素e
        st.pop();
        while (!st1.empty() && e<st1.top())//e相对st1是反序时
        {  st.push(st1.top());		//退栈st1中大于e的元素并进栈st
            st1.pop();
        }
        st1.push(e);			//将e进st1栈
    }
    while (!st1.empty())		//将st1所有元素退栈并进到st栈中
    {  e=st1.top();st1.pop();
        st.push(e);
    }
}

int main()
{
    stack<int> st;
    st.push(3);
    st.push(2);
    st.push(4);
    st.push(1);

    Sortst(st);

    return 0;
}

